package ar.uba.fi.taller2.cmmiassistant.persistencia;

import java.util.List;

import ar.uba.fi.taller2.cmmiassistant.modelo.Organizacion;
import ar.uba.fi.taller2.cmmiassistant.modelo.ServicioIdentificadores;
import ar.uba.fi.taller2.cmmiassistant.modelo.cmmi.ModeloProcesos;

/**
 * DAO para las entidades del modelo.
 * 
 * 
 * @author Mariano Tugnarelli
 * 
 */
public interface ServicioPersistencia {

    /**
     * pre : ninguna. post: recupera del repositorio el Modelo de Procesos.
     * 
     * @return
     */
    ModeloProcesos cargarModeloProcesos() throws PersistenciaException;

    /**
     * pre : ninguna. post: devuelve los Gestores para todas las Organizaciones
     * disponibles.
     * 
     * @param organizacion
     */
    List<GestorOrganizacion> buscarOrganizaciones()
            throws PersistenciaException;

    /**
     * pre : ninguna. post: devuelve una nueva instancia del Gestor de una nueva
     * Organizacion.
     * 
     * @return
     */
    GestorOrganizacion crearGestor(Organizacion organizacion)
            throws PersistenciaException;
}
